Method and apparatus for programmable thermal sensor for an integrated circuit

ABSTRACT

A programmable thermal sensor is implemented in an integrated circuit such as a microprocessor. The programmable thermal sensor monitors the temperature of the integrated circuit, and generates an output to indicate that the temperature of the integrated circuit has attained a pre-programmed threshold temperature. In a microprocessor implementation, the microprocessor contains a processor unit, an internal register, microprogram and clock circuitry. The microprogram writes programmable input values, corresponding to threshold temperatures, to the internal register. The programmable thermal sensor reads the programmable input values, and generates an interrupt when the temperature of the microprocessor reaches the threshold temperature. In addition to a programmable thermal sensor, the microprocessor contains a fail safe thermal sensor that halts operation of the microprocessor when the temperature attains a critical temperature.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to thermal sensing, and more specifically to methods and apparatus for a programmable thermal sensor in an integrated circuit.

[0003] 2. Art Background

[0004] Advances in silicon process technology has lead to the development of increasingly larger die sizes for integrated circuits. The large dies sizes permit integration of millions of transistors on a single die. As die sizes for integrated circuits become larger, the integrated circuits consume more power. In addition, advances in microprocessor computing require execution of a large number of instructions per second. To execute more instructions per second, the microprocessor circuits operate at an increased clock frequency. Therefore, a microprocessor containing over one million transistors may consume over 30 watts of power. With large amounts of power being dissipated, cooling becomes a problem.

[0005] Typically, integrated circuits and printed circuit boards are cooled by either active or passive cooling devices. A passive cooling device, such as a heat sink mounted onto an integrated circuit, has a limited capacity to dissipate heat. An active cooling device, such as a fan, is used to dissipate larger amounts of heat. Although a fan cooling system dissipates heat, there are several disadvantages associated with such a system. Traditionally, fans cool integrated circuits by air convection circulated by a fan. However, when a fan is used in conjunction with a high density multi-chip computer system, a large volume of air is required for cooling thereby necessitating powerful blowers and large ducts. The powerful blowers and large ducts implemented in the computer occupy precious space and are too noisy. The removal of a cover or other casing may result in a disturbance of air flow causing the fan cooling system to fail. In addition, the fan cooling system is made up of mechanical parts that have a mean time between failure (MTBF) specification less than a typical integrated circuit. Furthermore, fan cooling systems introduce noise and vibration into the system.

[0006] In addition to cooling systems, thermal sensors are implemented to track the temperature of an integrated circuit or electronic system. Typically, thermal sensors consist of a thermal couple which is directly attached to a heat sink. In more sophisticated thermal sensing systems, a diode and external analog circuitry are used. In operation, the voltage/current characteristics of the diode change depending upon temperature of the integrated circuit, and the external analog circuitry measures the voltage or current characteristics of the diode. The additional analog circuitry is complex and difficult to implement. In addition, employing the analog circuitry results in a thermal time delay degrading the accuracy of such a configuration. Moreover, external analog circuitry for sensing the voltage of the diode consumes a larger area than the integrated circuit being sensed. Therefore, it is desirable to provide a thermal sensor which is incorporated into the integrated circuit. In addition, it is desirable to provide a thermal sensor that can provide feedback for an active cooling system. Furthermore, it is desirable to control the temperature of an integrated circuit without the use of a fan. The present invention provides an integrated thermal sensor that detects a threshold temperature so that active cooling of the integrated circuit is accomplished through system control.

SUMMARY OF THE INVENTION

[0007] A programmable thermal sensor is implemented in an integrated circuit. The programmable thermal sensor monitors the temperature of the integrated circuit, and generates an output to indicate that the temperature of the integrated circuit has attained a predetermined threshold temperature. The programmable thermal sensor contains a voltage reference, a programmable V_(be), a current source, and a sense amplifier or comparator. The current source generates a constant current to power the voltage reference and the programmable V_(be). With a constant current source, the voltage reference generates a constant voltage over varying temperatures and power supply voltages. In a preferred embodiment, the voltage reference is generated with a silicon bandgap reference circuit. The constant voltage from the voltage reference is one input to the sense amplifier. The programmable V_(be) contains a sensing portion and a multiplier portion. In general, the programmable V_(be) generates a voltage dependent upon the temperature of the integrated circuit and the value of programmable inputs. The programmable inputs are supplied to the multiplier portion to generate a multiplier value for use in the multiplier portion. The voltage reference is compared with the voltage generated by the programmable V_(be) in the sense amplifier. The sense amplifier generates a greater than, less than signal.

[0008] The programmable thermal sensor of the present invention is implemented in a microprocessor. In addition to the programmable thermal sensor, the microprocessor contains a processor unit, an internal register, microprogram and clock circuitry. The processor unit incorporates the functionality of any microprocessor circuit. The clock circuitry generates a system clock for operation of the microprocessor. In general, the microprogram writes programmable input values to the internal register. The programmable input values correspond to threshold temperatures. The programmable thermal sensor reads the programmable input values, and generates an interrupt when the temperature of the microprocessor reaches the threshold temperature. In a first embodiment, the interrupt is input to the microprogram and the processor unit. In response to an interrupt, the processor unit may take steps to cool the temperature of the microprocessor, and the microprogram programs a new threshold temperature. For example, the processor may turn on a fan or reduce the clock frequency. The new threshold temperature is slightly higher than the current threshold temperature so that the processor unit may further monitor the temperature of the microprocessor.

[0009] In a second embodiment of the present invention, the interrupt generated by the programmable thermal sensor is input to external sensor logic. The external sensor logic automatically controls the frequency of the microprocessor. If the temperature of the microprocessor raises, then the clock frequency is decreased. Conversely, if the temperature of the microprocessor drops, then the system clock frequency is increased. In addition to a programmable thermal sensor, the microprocessor contains a fail safe thermal sensor. The fail safe thermal sensor generates an interrupt when detecting that the microprocessor reaches a pre-determined threshold temperature, and subsequently halts operation of the system clock. The pre-determined threshold temperature is selected below a temperature that causes physical damage to the device. The microprocessor of the present invention is implemented in a computer system. Upon generation of an interrupt in the programmable thermal sensor, a message containing thermal sensing information is generated and displayed to a user of the computer system.

BRIEF DESCRIPTION OF THE DRAWINGS

[0010] The objects, features, and advantages of the present invention will be apparent from the following detailed description of the preferred embodiment of the invention with references to the following drawings.

[0011]FIG. 1 illustrates a block diagram of a programmable thermal sensor configured in accordance with the present invention.

[0012]FIG. 2 illustrates a graph depicting the relationship between the base-emitter voltage (V_(be)) of a bipolar transistor versus temperature of the supply voltage.

[0013]FIG. 3 illustrates a bandgap reference circuit configured in accordance with the present invention.

[0014]FIG. 4 illustrates a programmable base to emitter voltage (V_(be)) circuit configured in accordance with the present invention.

[0015]FIG. 5 illustrates a current source, including the bandgap reference circuit, configured in accordance with the present invention.

[0016]FIG. 6 illustrates a sense amplifier for the thermal sensor configured in accordance with the present invention.

[0017]FIG. 7 illustrates block diagram of a first embodiment of a microprocessor incorporating a programmable thermal sensor configured in accordance with the present invention.

[0018]FIG. 8 illustrates a flow diagram for a method of controlling the programmable thermal sensor configured in accordance with the present invention.

[0019]FIG. 9 illustrates a block diagram of a second embodiment of a microprocessor incorporating a programmable thermal sensor configured in accordance with the present invention.

[0020]FIG. 10 illustrates a block diagram of a microprocessor incorporating a fail safe thermal sensor configured in accordance with the present invention.

[0021]FIG. 11 illustrates a computer system incorporating a microprocessor comprising thermal sensing configured in accordance with the present invention.

NOTION AND NOMENCLATURE

[0022] The detailed descriptions which follow are presented, in part, terms of algorithms and symbolic representations of operations within a computer system. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art.

[0023] An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. These steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It proves convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities.

[0024] Further, the manipulations performed are often referred to in terms, such as adding or comparing, which are commonly associated with mental operations performed by a human operator. No such capability of a human operator is necessary, or desirable in most cases, in any of the operations described herein which form part of the present invention; the operations are machine operations. Useful machines for performing the operations of the present invention include general purpose digital computers or other similar devices. In all cases there should be borne in mind the distinction between the method operations in operating a computer and the method of computation itself. The present invention relates to method steps for operating a computer in processing electrical or other (e.g., mechanical, chemical) physical signals to generate other desired physical signals.

[0025] The present invention also relates to apparatus for performing these operations. This apparatus may be specially constructed for the required purposes or it may comprise a general purpose computer as selectively activated or reconfigured by a computer program stored in the computer. The algorithms presented herein are not inherently related to a particular computer or other apparatus. In particular, various general purpose machines may be used with programs written in accordance with the teachings herein, or it may prove more convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these machines will appear from the description given below. Machines which may perform the functions of the present invention include those manufactured by Intel® Corporation, as well as other manufacturers of computer systems.

DETAILED DESCRIPTION

[0026] Methods and apparatus for thermal sensing in an integrated circuit are disclosed. In the following description, for purposes of explanation, specific nomenclature is set forth to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that these specific details are not required to practice the present invention. In other instances, well known circuits and devices are shown in block diagram form to avoid obscuring the present invention unnecessarily.

[0027] Referring to FIG. 1, a block diagram of a programmable thermal sensor configured in accordance with the present invention is illustrated. In general, a programmable thermal sensor 100 monitors the temperature of an integrated circuit, and generates an output to indicate that the temperature of the integrated circuit has attained a predetermined threshold temperature. The programmable thermal sensor 100 contains a voltage reference 120, a programmable V_(be) 110, a current source 140, and a sense amplifier 160. The current source 140 generates a constant current to power the voltage reference 120 and the programmable V_(be) 110. With a constant current source, the voltage reference 120 generates a constant voltage over varying temperatures and power supply voltages (V_(cc)). In a preferred embodiment, the voltage reference is generated with a silicon bandgap reference circuit. The constant voltage from the voltage reference 120 is input to the sense amplifier 160. The programmable V_(be) 110 contains a sensing portion and a multiplier portion. In general, the programmable V_(be) 110 generates a voltage dependent upon the temperature of the integrated circuit and the value of programmable inputs. The programmable inputs are supplied to the multiplier portion to generate a multiplier value for use in the multiplier portion.

[0028] Referring to FIG. 2, a graph depicting the relationship between the base-emitter voltage (V_(be)) of a bipolar transistor versus temperature is illustrated. A characteristic curve 200 on the graph of FIG. 2 shows the linear characteristics of the V_(be) voltage over a temperature range of 70 degrees Fahrenheit (70° F.) to 140° F. In addition, the graph of FIG. 2 shows a relative constant bandgap voltage curve 205 over the specified temperature range. Although the bandgap voltage varies slightly over the temperature range, the variation of the bandgap voltage is negligible compared to the variation of the V_(be) voltage over the temperature range. As shown by the curve 205 in FIG. 2, the bandgap voltage is equal to approximately 1.3 volts (V). When the V_(be) voltage equals 1.3 volts, the temperature of the integrated circuit is 100° F. Based on the linear temperature characteristics of the V_(be) voltage, and the relatively constant bandgap voltage over the temperature range, a thermal sensor is constructed.

[0029] For the voltage/temperature characteristics of line 200 shown in FIG. 2, the bandgap voltage equals the V_(be) voltage when integrated circuit is at 100° F. However, the V_(be) voltage may be changed to sense additional temperature values in the integrated circuit. By shifting the linear V_(be) voltage/temperature characteristic curve 200, any number of predetermined thresholds temperature values are detected. To shift the voltage/temperature characteristic curve 200, the V_(be) voltage is multiplied by predetermined values to generate a new voltage for comparison to the bandgap voltage. Specifically, to shift the characteristic curve 200 to sense a voltage less then 100° F., the V_(be) voltage is multiplied by a fraction to generate a new characteristic curve, such as the characteristic curve 210 shown in FIG. 2. The characteristic curve 210 exhibits the same slope as the original characteristic curve 200. However, for the characteristic curve 210, the V_(be) voltage is equal to the bandgap voltage when the integrated circuit temperature equals 90° F. Similarly, the V_(be) voltage may be multiplied by a value greater than 1 to generate a characteristic curve such as the characteristic curve 220 shown in FIG. 2. The characteristic curve 220 also exhibits the same slope as the original characteristic curve 200. However, the characteristic curve 220 intersects the bandgap voltage curve 205 at 120° F. Consequently, a any number of threshold temperatures are detectable by multiplying the V_(be) voltage by a predetermined constant.

[0030] Referring to FIG. 3, a bandgap reference circuit configured in accordance with the present invention is illustrated. The bandgap reference circuit 120 is powered from a voltage source, V_(cc). The voltage source V_(cc) is regulated by a current source such that the current source 140 supplies a constant current over a wide range of V_(cc) voltages. A preferred embodiment of the present invention for the current source 140 is described fully below. The bandgap reference circuit 120 contains three N-P-N bipolar transistors Q1, Q2 and Q3, and three resistive elements R1, R2 and R3. In general, the constant bandgap reference voltage, V_(bandgap), is generated at the collector of N-P-N transistor Q3. The bipolar transistors Q1, Q2 and resistive elements R1, R2 and R3 are provided to compensate for temperature variations in the base to emitter junction voltage (V_(be)) of bipolar transistor Q3. Specifically, the resistive element R1 is coupled from the current source 140 to the collector of bipolar transistor Q1. The collector and base of bipolar transistor Q1 are shorted so that Q1 is effectively a P-N junction diode. The base of transistor Q1 and the base of transistor Q2 are coupled together. The resistive element R3 couples the collector of transistor Q2 to the current source 140, and the resistive element R2 couples the emitter of transistor Q2 to ground. In a preferred embodiment of the present invention, the resistive element R1 equals 4800 ohms, the resistive element R2 equals 560 ohms, and the resistive element R3 equals 4800 ohms.

[0031] In operation, the voltage at the base of transistors Q1 and Q2 are pulled to the V_(bandgap) voltage through the R1 resistance. Therefore, the transistors Q1 and Q2 are biased in the active region, thereby allowing current to flow from the collector to the emitter of transistors Q1 and Q2. The mirrored configuration of transistors Q1 and Q2 tends to drive the base to emitter voltage (V_(be)) of transistors Q1 and Q2 equivalent. However, the resistive element R2 increases the resistance at the emitter of transistor Q2, resulting in a greater current density flowing through transistor Q1 than flowing through transistor Q2. As the temperature in the integrated circuit rises, the V_(be) of transistor Q2 decreases. In turn, the decrease of V_(be) on transistor Q2 causes a decrease in the current density flow through Q2. The decrease in current density through the resistive element R2 also causes a reduction in the current density flowing through the resistive element R3. Because the collector of transistor Q2 is coupled to the base of transistor Q3, a decrease in the current through resistive element R3 results in an increase in the voltage at the base of transistor Q3. Consequently, as the temperature of the integrated circuit rises, the V_(be) across transistors Q1, Q2, and Q3 decreases. However, the decrease of V_(be) on transistor Q3 is compensated by the increase of voltage at the base of transistor Q3. Therefore, regardless of temperature fluctuations, the V_(bandgap) remains at a constant silicon bandgap voltage. For a further explanation of generation of a bandgap reference, including a theoretical derivation, see A. T. Brokaw, A Simple Three-Terminal IC Bandgap Reference, IEEE J. of Solid State Circuits, December, 1974, and Karel E. Kuijk, A Precision Reference Voltage Source, IEEE J. of Solid State Circuits, June 1973.

[0032] Referring to FIG. 4, a programmable base to emitter voltage (V_(be)) circuit configured in accordance with the present invention is illustrated. In a preferred embodiment of the present invention, a temperature varying voltage is generated from the characteristics of a base to emitter junction on a bipolar transistor. In general, the programmable V_(be) circuit generates an output voltage, V_(out), based on the V_(be) voltage and the value of programmable input voltages Vp1, Vp2 and Vp3. A N-P-N bipolar transistor Q11 shown in FIG. 4 is utilized to generate the V_(be) reference voltage. As described above, the V_(be)/temperature characteristic curve may be shifted along the temperature axis to detect a desired threshold temperature. By shifting the V_(be)/temperature characteristic curve along the temperature axis, a plurality of output voltages representing different threshold temperatures are generated.

[0033] To generate the V_(out) for a particular threshold temperature, a programmable V_(be) multiplier circuit is utilized. The programmable V_(be) multiplier circuit contains resistive elements R5, R6, R7, R8, and R9, and metal oxide semiconductor field effect transistors. (MOSFET) Q12, Q13, and Q14. In a preferred embodiment, Q12, Q13 and Q14 comprise N-MOS transistors. The drain terminal of transistor Q12 is coupled to a first input on resistive element R7, and the source of transistor Q12 is coupled to a second input on resistive element R7. The transistors Q13 and Q14 are similarly coupled to resistive elements R8 and R9, respectively. Programmable input voltages Vp1, Vp2, and Vp3 are input to the gate of transistors Q12, Q13 and Q14, respectively. The input voltages Vp1, Vp2, and Vp3 control the current flow by selecting either a resistive element or the respective MOS transistor.

[0034] In operation, the programmable V_(be) multiplier circuit outputs a voltage, V_(out), comprising a multiple of the base to emitter voltage on bipolar transistor Q11. For purposes of explanation, consider resistive elements R6, R7, R8 and R9 as one resistive element: R6-R9. The resistive element R6-R9 is connected across the base to emitter junction of bipolar transistor Q11. Therefore, the voltage drop across the resistive element R6-R9 is equivalent to V_(be) of bipolar transistor Q11. The current flowing through resistive element R6-R9 is approximately equal to the current flowing through resistive element R5 minus the current flowing into the base of transistor Q11. Therefore, if the value of resistive element R5 is equal to the value of resistive element R6-R9, the voltage at the collector of transistor Q11 equals 2V_(be). In general, the V_(out) voltage is defined by the following equation:

V _(out) =V _(R5) +V _(be)

V _(be) =V _(R6-R9)

V _(out) =V _(R5) +V _(R6-R9)

[0035] Therefore, V_(out) values greater than 1V_(be) are generated by changing the ratio between resistive element R5 and resistive element R6-R9.

[0036] To move the V_(be) curve 200 shown in FIG. 2 along the temperature axis via the programmable V_(be) circuit 110, a combination of resistive elements R7, R8 and R9 are selected. To select a combination of resistive elements R7, R8 and R9, the voltages Vp1, Vp2, and Vp3 are applied to the gates of MOS transistors Q13, Q12, and Q14, respectively. The resistive elements R7, R8 and R9 are binary weighed resistors. Each individual resistor R7, R8 and R9 can be shorted through control by Q12, Q13 and Q14 respectively. By selecting resistive elements R7, R8 and R9 as series resistors with resistive element R6, the voltage V_(out) is changed. In a preferred embodiment of the present invention, the resistive element R5 equals 6380, the resistive element R6 equals 5880, the resistive element R7 equals 392, the resistive element R8 equals 787, and the resistive element R9 equals 1568. By setting the resistive elements R5-R9 to the above values and programming the transistors Q13, Q12, and Q14, the voltage V_(out) is generated to correspond to specific threshold temperatures. Specifically, Table 1 illustrates the threshold temperatures programmed in response to the input voltages Vp1, Vp2, and Vp3. TABLE 1 Threshold Temperature Vp1 Vp2 Vp3 (Degrees C.) 0 0 0  70° 0 0 1  80° 0 1 0  90° 0 1 1 100° 1 0 0 110° 1 0 1 120° 1 1 0 130° 1 1 1 140°

[0037] Referring to FIG. 5, a current source including the bandgap reference circuit configured in accordance with the present invention is illustrated. The bandgap reference circuit comprises resistors R1, R2, and R3 and bipolar transistors Q1, Q2, Q3 and Q8. The operation of the bandgap reference circuit 120 is described above. However, the bandgap reference circuit of FIG. 5 also incorporates a gain stage with bipolar transistor Q8. In order to incorporate a gain stage, the collector of bipolar transistor Q3 is coupled to the base of bipolar transistor Q8. The constant bandgap reference voltage generated at the collector of bipolar transistor Q3 controls the base of bipolar transistor Q8 resulting in a signal at the emitter of bipolar transistor Q8 containing a silicon bandgap voltage with increased current density. In addition to the bandgap reference circuit, FIG. 5 illustrates a constant current source 140 including a start-up circuit portion. The constant current source 140 comprises a bipolar transistor Q4 P-MOS transistors Q5, Q7 and Q15, and resistor R4. The constant current source 140 stabilizes operation of the thermal sensor of the present invention over a range of V_(cc) ranges.

[0038] In general, the constant current source 140 is derived from the generation of the constant bandgap reference voltage. In operation, the constant bandgap reference voltage, V_(bandgap), is coupled to the base of bipolar transistor Q4. The constant bandgap reference voltage drives the bipolar transistor Q4 to generate a constant current flowing from the collector to the emitter of transistor Q4 and through the resistor R4. The P-MOS transistor Q5 is mirrored with P-MOS transistors Q7 and Q15. The constant current flowing through resistor R4 also flows through P-MOS transistor Q5 and is mirrored through P-MOS transistors Q7 and Q15. In a preferred embodiment, resistive element R4 equals 6020. The P-MOS transistor Q15 provides a constant current source for the programmable V_(be) circuit 110. Similarly, P-MOS transistor Q7 provides a constant current source to the bandgap reference circuit 120 through bipolar transistors Q3 and Q8.

[0039] The current source and bandgap reference voltage circuit illustrated in FIG. 5 also comprises a start-up circuit. The start-up circuit within the current source is required because the bandgap reference voltage controls the current source which, in turn, controls the bandgap reference voltage. Therefore, an equilibrium between the bandgap reference voltage and the current source circuit is required to ensure the proper operation of the thermal sensor. The start-up circuit contains P-MOS transistors Q6, Q9 and Q10. The P-MOS transistor Q9 is configured such that the gate is coupled directly to the drain. In this configuration, the P-MOS transistor Q9 operates as a load resistor. In general, the start-up circuit generates a voltage for the bandgap reference voltage circuit during initial power-up of the thermal sensor. Specifically, during an initial power-up of the thermal sensor circuit, transistors Q5, Q7, Q10, and Q15 are biased such that no current flows through the respective devices. Also, during the initial power-up state, the P-MOS transistor Q9 is biased to conduct current thereby supplying a low voltage level to the gate of P-MOS transistor Q6. A low voltage level at the gate of P-MOS transistor Q6 biases the P-MOS transistor Q6 such that current flows from the V_(cc) to bipolar transistors Q3 and Q8. The P-MOS transistor Q6 biases the base of bipolar transistor Q8 allowing generation of the bandgap reference voltage.

[0040] An increase in the bandgap reference voltage driving the base of bipolar transistor Q4 causes current to flow from the emitter of Q4 through resistor R4. As the current density increases through transistors Q5 and Q10, the voltage at the gate of transistor Q6 also increases. The build up of charge at the gate of transistor Q6 is facilitated by a large resistance generated by the load transistor Q9. As the voltage at the gate of P-MOS transistor Q6 raises to the pinch-off threshold voltage of the device, the P-MOS transistor Q6 conducts no current such that current is no longer supplied to bipolar transistors Q3 and Q8. Because of the gain provided at the emitter of bipolar transistor Q8, current continues to increase in the bandgap reference voltage circuit until the collector of bipolar transistor Q3 begins to control the base of bipolar transistor Q8. At this point, the circuit has reached an equilibrium such that the constant bandgap reference voltage generated supplies a constant voltage to the current source. Also shown in FIG. 5 is a disable P-MOS transistor Q21. The P-MOS transistor Q21 powers down, or disables, the thermal sensor circuit for testing. The P-MOS transistor Q21 is utilized only for disabling, and it is not required to generate the constant current source or the bandgap reference voltage. The P-MOS transistor Q15 isolates the collector of bipolar transistor Q11 on the programmable V_(be) circuit from the V_(cc) on the current source circuit.

[0041] Referring to FIG. 6, a sense amplifier for the thermal sensor configured in accordance with the present invention is illustrated. In a preferred embodiment of the present invention, a sense amplifier 160 contains three stages. The first stage and the second stage are identical. The third stage comprises a current buffer 600. The current buffer 600 is illustrated in FIG. 6 as a standard logic inverter. In general, the sense amplifier 160 operates as a comparator circuit. In operation, if the V_(bandgap) is greater than the V_(out) voltage, then the output of sense amplifier 160 is a low logic level. Alternatively, if the V_(out) is greater than the V_(bandgap) voltage, then the output of sense amplifier 160 is a high logic level. The second stage of sense amplifier 160 generates a voltage gain of signals on lines S1 and S1#. The first stage contains PMOS transistors Q16, Q17 and Q18, and NMOS transistors Q19 and Q20. The transistors Q19 and Q20 are constructed as a current mirror.

[0042] The voltage V_(out) is input to the gate of PMOS transistor Q16, and the voltage V_(gap) is input to the gate of PMOS transistor Q17. In operation, if the voltage V_(out) is greater than the V_(bandgap), then PMOS transistor Q17 is biased to conduct more current than PMOS transistor Q16. Because a greater current density flows through PMOS transistor Q17 than PMOS transistor Q16, the voltage at line S1 rises and the voltage at line S1# decreases. The source and gate of NMOS transistor Q19 are connected, and the source/gate connection is controlled by the voltage at S1#. Consequently, when the voltage at line S1# decreases, NMOS transistor Q19 is biased to reduce the current density flow. The voltage on line S1# is input to the gate of PMOS transistor Q18. As the voltage on line S1# decreases, the PMOS transistor Q18 is biased to conduct a greater current density. The increase in current density through transistor Q18 further amplifies the voltage difference between lines S1 and S1#. When the V_(be) voltage is less than the V_(gap) voltage, the first stage of the sense amplifier 160 operates in an analogous manner.

[0043] The second stage of sense amplifier 160 comprises PMOS transistors Q22, Q23 and Q24, and NMOS transistors Q25 and Q26. The operation of the second stage of the sense amplifier 160 is analogous to the operation of the first stage. In addition, hysteresis is provided for the sense amplifier 160 via a feedback path from the output of sense amplifier 160 to the programmable V_(be) circuit V_(out) input of sense amplifier 160. The hysteresis provides a more stable output signal from the sense amplifier 160 such that voltage variations on the inputs of the sense amplifier 160 after generation of a high output voltage level does not cause glitches in the output signal.

[0044] For the programmable thermal sensor of the present invention to operate well over process variations, the resistors are constructed to have a width larger than the minimum specification for the resistive value. All bipolar transistors in the programmable thermal sensor contain at least double width emitters. For the MOS transistors, long channel lengths are constructed. The long channel lengths of the MOS transistors help stabilize the programmable thermal sensor as well as provide noise immunity. For the bandgap reference circuit 120, the bipolar transistor Q2 is constructed to be ten times greater in size than the bipolar transistor Q1. The large size differential between bipolar transistors Q1 and Q2 provides a stable bandgap voltage reference,

[0045] Referring to FIG. 7, a first embodiment of a microprocessor incorporating a programmable thermal sensor configured in accordance with the present invention is illustrated. A microprocessor 700 contains, in part, the programmable thermal sensor 100 and a processor unit 705. The processor unit 705 is intended to present a broad category of microprocessor circuits comprising a wide range of microprocessor functions. In general, the programmable thermal sensor 100 is programmed to detect a threshold temperature within the microprocessor 100. If the microprocessor 700 attains the pre-programmed threshold temperature, the programmable thermal sensor 100 generates an interrupt. As described above, the programmable thermal sensor 100 detects the pre-programmed threshold temperature based on the temperature of the supply voltage at the programmable thermal sensor 100. The supply voltage across a microprocessor die can vary as much as 8° F. In a preferred embodiment of the present invention, the programmable thermal sensor 100 is located in the middle of the die of microprocessor 700 so as to provide the best thermal sensing. However, placement of the programmable thermal sensor in the middle of the die increases noise in the microprocessor. In an alternative embodiment, several thermal sensors are placed across the microprocessor die. In this configuration, each thermal sensor provides an interrupt when attaining the threshold temperature, and an average temperature is calculated based on the several thermal sensors.

[0046] In addition to the programmable thermal sensor 100 and processor unit 705, a microprocessor 700 contains an internal register 735, a read only memory (ROM) 730, and a phase lock loop (PLL) circuit 720. External to the microprocessor 700 is an external clock 710. The external clock 710 provides a clock signal to the PLL circuit 720. The PLL circuit 720 permits fine tuning and variable frequency adjustment of the input clock signal. Specifically, the PLL circuit 720 receives a value, and increases or decreases the frequency based on the value received. The PLL circuit 720 is intended to represent a broad category of frequency adjustment circuits, which are well known in the art and will not be described further. The output of the PLL circuit 720 is the microprocessor system clock, and is input to the processor unit 705.

[0047] The programmable thermal sensor 100 is coupled to the ROM 730 and internal register 735. The ROM 730 contains a microprogram consisting of a plurality of microcode instructions. The operation of the microprogram within the microprocessor 700 is described more fully below. In general, the microprogram 740 writes values representing the threshold temperature in the internal register 735. The internal register 735 stores the threshold temperature values and is coupled to the programmable V_(be) circuit 110. For example, in a preferred embodiment of the present invention, the Vp1, Vp2 and Vp3 voltage values stored in the internal register 735 are used to program the programmable V_(be) circuit 110 in the manner as described above. However, the present invention is not limited to three input voltage values in that any number of values may be stored in the internal register 735 to program any number of threshold temperatures. When the microprocessor 700 attains the threshold temperature, the programmable threshold sensor generates a comparator signal via sense amplifier 160 as described above. The comparison signal is labeled as “interrupt” on FIG. 7. The interrupt is input to the ROM 730 and the processor unit 705.

[0048] In response to the interrupt, the microprogram 740 generates new values representing a new threshold temperature. The microprogram writes the new values to the internal register 735. For example, if the programmable thermal sensor generates an interrupt based on a threshold temperature of 100 F., then the microprogram may write values to the internal register 735 to represent a threshold temperature of 110 F. In the first embodiment, the processor unit 705 receives the interrupt signal as a standard hardware interrupt input. In response to the interrupt, the processor unit 705 generates a clock control value for the PLL circuit 720. The clock signal value reduces the microprocessor system clock frequency.

[0049] If the interrupt is again generated in response to the microprocessor 700 attaining the new threshold temperature value, the microprogram 740 writes a new temperature threshold value to the internal register 735, and the processor unit 705 further reduces the microprocessor system clock frequency. In addition, the processor unit 705 may set a standard timer circuit such that if a pre-determined amount of time elapses, then the processor unit 705 increases the clock frequency. Increasing the clock frequency permits the processor unit 705 to increase performance when the temperature of the microprocessor has decreased. In addition, to detect further decreases in the microprocessor temperature, the microprogram 740 may lower the threshold temperature and the processor unit may further increase the clock frequency. Therefore, the programmable thermal sensor of the present invention is utilized to control the temperature by increasing and decreasing the microprocessor clock frequency.

[0050] Referring to FIG. 8, a flow diagram for a method of controlling the programmable thermal sensor configured in accordance with the present invention is illustrated. The method illustrated in the flow chart of FIG. 8 may be a microprogram such as microprogram 740 stored in ROM 730. Upon initialization of the microprocessor, a first threshold temperature is programmed into the programmable thermal sensor as shown in step 800. Although the present invention is described in conjunction with a microprocessor integrated circuit, one skilled in the art will appreciate that the thermal sensor of the present invention may be incorporated into any integrated circuit. The temperature of the integrated circuit is sensed as shown in step 810. The sensing of the integrated circuit may be performed by the programmable thermal sensor 110 of the present invention. The integrated circuit sensor determines whether the temperature of the integrated circuit equals the first threshold temperature. If the integrated circuit temperature is equal to or greater than the threshold temperature, then the threshold temperature is compared to a critical temperature as shown in step 830.

[0051] The critical temperature is defined as the maximum temperature that the integrated circuit may attain before the integrated circuit is physically damaged. If the threshold temperature is equal to the critical temperature, than the integrated circuit is shut down as shown in step 860. Alternatively, if the threshold temperature is less than the critical temperature, than steps are taken to reduce the temperature in the integrated circuit as shown in step 840. For example, in a microprocessor integrated circuit, the microprocessor system clock frequency is reduced. In addition to reducing the system clock frequency, a message to a system user reporting the temperature of the integrated circuit is generated. By informing the user with the temperature information, the user may take steps external to the integrated circuit to facilitate cooling. Next, a new threshold temperature is programmed in the thermal sensor as shown in step 850. The process continues wherein the thermal sensor senses the integrated circuit temperature to detect if the integrated circuit temperature reaches the new threshold temperature, and based on the threshold temperature set, either shuts down the power to the integrated circuit or executes steps to reduce the temperature.

[0052] Referring to FIG. 9, a block diagram of a programmable thermal sensor system configured in accordance with a second embodiment of the present invention is illustrated. A microprocessor 900 comprises, in part, a programmable thermal sensor 110 and a processor unit 905. The programmable thermal sensor 110 is configured as described above. The programmable thermal sensor 110 is connected to a ROM 910 and an internal register 920. The programmable thermal sensor 110 is also coupled to external sensor logic 940. The external sensor logic 940 is coupled to a counter 950 and an active cooling device 955. An external clock 945 is input to a counter 950, and the output of the counter 950 is input to a clock circuit 930. The clock circuit 930 buffers the input clock frequency to generate the microprocessor clock for the processor unit 905. In operation, a microprogram 915, stored in ROM 910, sets the internal register 920 to an initial threshold temperature value. If the temperature of the microprocessor 900 rises to the threshold temperature, an interrupt signal is generated to the external sensor logic 940.

[0053] Upon receipt of the interrupt to the external sensor logic 940, the external sensor logic 940 programs a value to the counter 950, and activates the active cooling device 955. The active cooling device 955 may comprise a fan or other heat dissipating device. To activate the active cooling device 955, the external sensor logic 940 generates a signal to turn on the active cooling device 955 by any number of well known methods. The counter 950 is configured as a frequency divider such that a clock frequency, from the external clock 945, is input. The counter 950 generates a new clock frequency based on the counter value. The programming of a counter, such as counter 950, for use as a frequency divider is well known in the art and will not be described further. As one skilled in the art will recognize, the amount in which the clock frequency may be reduced is a function of the counter selected. The slower clock frequency is input to the clock circuit 930. The clock circuit 930 may perform a variety of functions such as buffering, clock distribution, and phase tuning. The system clock comprises a reduced frequency to facilitate the cooling of the device. In addition to triggering the external sensor logic 940, the programmable thermal sensor also interrupts the microprogram 915. Upon receiving the interrupt, the microprogram 915 programs the internal register 920 to sense a new threshold temperature. If the microprocessor 900 heats up to the new threshold temperature, the external sensor logic 940 is again triggered, and the system clock frequency is further reduced. The configuration illustrated in FIG. 9 provides close loop control of the microprocessor system clock frequency, thereby automatically reducing the temperature when overheating occurs.

[0054] Referring to FIG. 10, a block diagram of a fail safe thermal sensor configured in accordance with the present invention is illustrated. A fail safe thermal sensor 1010 is incorporated into a microprocessor 1000. Although the fail safe thermal sensor 1010 is incorporated into the microprocessor 1000, one skilled in the art will appreciate the fail safe thermal sensor may be incorporated into any integrated circuit. The fail safe thermal sensor 1010 contains a V_(be) circuit 1012, a bandgap voltage reference circuit 120, a current source 140, and a sense amplifier 160. The bandgap voltage reference circuit 120, the current source 140 and the sense amplifier 160 operate in accordance with the respective circuits described above. The V_(be) reference circuit 1012 is equivalent to the programmable V_(be) circuit 110, except that the resistive value ratio is fixed. In the V_(be) circuit 1012, the output V_(be) voltage is fixed based on resistive values R5, R6, R7, R8 and R9. In a preferred embodiment of the present invention, the resistive values R5, R6, R7, R8 and R9 are fixed to the critical temperature. Consequently, the fail safe thermal circuit 1010 generates an interrupt when the temperature of the microprocessor 1000 attains the pre-programmed fixed critical temperature.

[0055] The output of the fail safe thermal sensor 1010 is connected to stop clock logic 1015. The stop clock logic 1015 is coupled to the microprocessor clock circuit 1020. Upon receipt of the interrupt of the fail safe thermal sensor 1010, the stop clock logic 1015 halts operation of the microprocessor 1000 by inhibiting the microprocessor clock. In addition, the stop clock logic 1015 ensures that the microprocessor 1000 finishes a system cycle completely. The stop clock logic 1015 therefore protects loss of data when an interrupt is generated during a microprocessor clock cycle. A microprocessor clock circuit 1012 may comprise a simple clock oscillator or a more complex and controllable clock generator. The fail safe thermal sensor 1010 prohibits the microprocessor 1000 from attaining a critical temperature, thereby protecting the device without software control.

[0056] Referring to FIG. 11, a computer system incorporating a microprocessor comprising thermal sensing configured in accordance with the present invention is illustrated. A computer system 1100 contains a central processing unit (CPU) 1105 incorporating the programmable thermal sensor 100 and the fail safe thermal sensor 1010. In a preferred embodiment, the CPU comprises a compatible Intel microprocessor architecture, manufactured by Intel® Corporation, the assignee of the present invention. The computer system 1100 also contains memory 1110 and an I/O interface 1120. The I/O interface 1120 is coupled to an output display 1130 and input devices 1140 and 1145. In addition, I/O interface 1120 is coupled to a mass memory device 1160. The CPU 1105, memory 1110, I/O interface 1120, output device 1130, and input devices 1140 and 1145 are those components typically found in a computer system, and, in fact, the computer system 1100 is intended to represent a broad category of data processing devices. The memory 1110 stores software for operation of the computer system 1100. Specifically, memory 1110 stores, in part, an operating system and an interrupt handler routine for operation in conjunction with the thermal sensor.

[0057] Upon generation of an interrupt in the programmable thermal sensor 100 or the fail safe thermal sensor 1010, the interrupt handler routine 1165 is executed. The calling of an interrupt handler routine upon generation of a hardware interrupt in a microprocessor is well-known in the art and will not be described further. In general, the interrupt handler routine 1165 generates a message to the output display 1130. The message informs the user of the computer system 1100 that the microprocessor 1105 has attained the threshold temperature. In response, a user may alter external environmental conditions to facilitate cooling of the CPU 1105. As described above, the CPU 1105 sets a new threshold temperature for the programmable thermal sensor. If the CPU 1105 temperature rises to the new threshold temperature, another interrupt is generated. Again, the interrupt handler routine 1165 is called to generate a message to the user on output display 1130. If the temperature reaches a critical temperature for which the fail safe thermal sensor is programmed, then the fail safe thermal sensor generates an interrupt to shut down the CPU 1105.

[0058] Although the present invention has been described in terms of a preferred embodiment, it will be appreciated that various modifications and alterations might be made by those skilled in the art without departing from the spirit and scope of the invention. The invention should therefore be measured in terms of the claims which follow. 

What is claimed is:
 1. A computer, comprising: a clock module, said clock module produces a clock signal having two or more different frequencies; a processor operatively connected to said clock module, said processor processes instructions in accordance with the clock signal; a temperature sensor operatively connected to said clock module, said temperature sensor produces a temperature signal based on the temperature of said processor; a fan; a fan controller, said fan controller activates the fan in response to the temperature signal, wherein the frequency of the clock signal supplied to said processor varies depending on the temperature of said processor.
 2. A computer as recited in claim 1, wherein the frequency of the clock signal supplied to said processor is reduced as needed to avert overheating of said processor.
 3. A method for producing a clock signal for a microprocessor, said method comprising: (a) providing a fast clock signal; (b) providing a slow clock signal; (c) receiving a control signal related to the temperature of the microprocessor; and (d) selecting between the fast clock signal and slow clock signal in accordance with the control signal, wherein the control signal is influenced by activity of a fan associated with the microprocessor.
 4. A method as recited in claim 3, wherein the fast clock signal is reduced to the slow clock signal by buffering, clock distribution, or phase tuning.
 5. A method for producing a clock for a microprocessor, said method comprising: (a) producing a clock signal having a frequency which varies in accordance with the chip temperature; and (b) supplying the clock signal to the microprocessor, wherein the frequency of the clock signal is influenced by activity of a fan associated with the microprocessor which serves as an indicator of the chip temperature.
 6. A method as recited in claim 5, wherein said producing (a) comprises: (a1) receiving a high frequency clock; and (a2) reducing the high frequency clock to a slow frequency clock by buffering, clock distribution, or phase tuning to avert overheating by said processor.
 7. A method for activating speed of a fan that cools a microprocessor, said method comprising the operations of: monitoring temperature of the microprocessor; producing a control signal based on the temperature of the microprocessor; and activating the fan in response to the control signal.
 8. A method as recited in claim 7, wherein the fan and the microprocessor are parts of a computer.
 9. A computer system, comprising: a processor module, said processor module processes instructions in accordance with a clock signal, and said processor module supports a normal clock mode and a plurality of reduced power modes; and a temperature sensor thermally coupled to said processor module, said temperature sensor produces a temperature signal based on the temperature of said processor module, wherein the temperature signal from said temperature sensor is used to regulate the temperature of said processor module by altering the frequency of the clock signal, and wherein overheating of said processor module is averted by reducing the frequency of the clock signal to a value associated with one of the reduced power modes.
 10. A computer system as recited in claim 9, wherein said temperature sensor is internal to said processor module.
 11. A thermal management method for a computer system having a microprocessor, the microprocessor performing operations at a rate determined by a clocking frequency, said thermal management method comprising the acts of: monitoring the temperature of the microprocessor; comparing the temperature of the microprocessor to first and second temperature thresholds, the second temperature threshold being greater than the first temperature threshold; reducing the clocking frequency when the temperature of the microprocessor is greater than the first temperature threshold; and reducing the clocking frequency a second time when the temperature of the microprocessor exceeds the second temperature threshold.
 12. A method as recited in claim 11, wherein the clocking frequency is reduced a second time only after the reduction in the clocking frequency does not operate to control thermal conditions of the microprocessor.
 13. A method as recited in claim 11, wherein said reducing the clocking frequency is performed by one of buffering, clock distribution, or phase tuning, and wherein said reducing the clock frequency further reduces the clocking frequency when a prior reduction in the clocking frequency is not able to prevent the temperature of the microprocessor from continuing to increase.
 14. A computer system, comprising: a microprocessor, said microprocessor operating to perform operations in accordance with a clocking frequency; a fan; a temperature sensor thermally coupled to said microprocessor, said temperature sensor provides a temperature indication corresponding to the temperature of said microprocessor; and a thermal manager operatively connected to said microprocessor and said fan, said thermal manager being configured to receive the temperature indication from said temperature sensor, and said thermal manager compares the temperature indication to first and second temperature thresholds, causes the clocking frequency for said microprocessor to be reduced a first time to provide thermal management when the temperature indication indicates that the temperature of said microprocessor exceeds the first temperature threshold, activates said fan when the temperature indication indicates that the temperature of said microprocessor exceeds the first temperature threshold, and causes the clocking frequency to be reduced a second time when the temperature of the microprocessor exceeds the second temperature threshold the second temperature threshold being greater than the first temperature threshold.
 15. A computer system as recited in claim 14, wherein said temperature sensor is integrated into said microprocessor.
 16. A computer system as recited in claim 14, wherein said second reduction in clock frequency is used only after the first reduction in the clocking frequency for said microprocessor does not operate to sufficiently limit the temperature of said microprocessor.
 17. A computer system as recited in claim 14, wherein when the temperature indication indicates that the temperature of said microprocessor does not exceed the second temperature threshold, said second reduction in clock frequency is not implemented.
 18. A computer system as recited in claim 14, wherein a plurality of respectively lower clocking frequencies can be used to attempt to stabilize the thermal conditions.
 19. A computer system, comprising: a microprocessor, said microprocessor operates in accordance with a clock signal having a controllable frequency a fan; and a thermal management controller operatively connected to said microprocessor and said fan, said thermal management controller operates to thermally manage said microprocessor in accordance with a first cooling mode and a second cooling mode, the first cooling mode involving use of said fan for cooling said microprocessor, and the second cooling mode involving reduction in the controllable frequency of the clock signal for cooling said microprocessor, wherein, with the first cooling mode, said thermal management controller causes said fan to activate to provide thermal cooling.
 20. A computer system as recited in claim 19, wherein, with the second cooling mode, said thermal management controller causes the controllable frequency of the clock to be successively reduced as needed to provided additional cooling.
 21. A computer, comprising: a microprocessor that operates in accordance with a clock, the clock having a controllable frequency; a temperature sensor that measures a temperature; a fan; and a thermal controller for providing thermal management of said computer, said thermal controller has a first cooling mode and a second cooling mode, the controllable frequency of the clock is reduced to regulate thermal conditions when in the first cooling mode, and said fan is activated to regulate thermal conditions when in the second cooling mode, wherein when said thermal controller operates in the first cooling mode, the controlled frequency of the clock is reduced when the temperature exceeds a first temperature threshold, and wherein when said thermal controller operates in the second cooling mode, said fan is activated when the temperature exceeds the first temperature threshold.
 22. A computer as recited in claim 21, wherein said temperature sensor measures the temperature of said microprocessor.
 23. A computer as recited in claim 21, wherein said temperature sensor is integral with said microprocessor.
 24. A computer as recited in claim 21, wherein when said thermal controller operates in the first cooling mode, the controllable frequency of the clock is gradually and successively stepwise reduced as needed to regulate thermal conditions.
 25. A computer as recited in claim 21, wherein in the first cooling mode cooling of said microprocessor is achieved primarily through reduction in clock frequency for said microprocessor, and wherein in the second cooling mode cooling said microprocessor is achieved primarily through use of said fan. 